#ifndef UI_CUSTOM_H
#define UI_CUSTOM_H

#include "ui.h"
#include <stdbool.h>


// 控制四个表指针的全局变量
extern int current_speed;           // 当前速度值
extern float current_coolant_temp;  // 当前冷却液温度值
extern bool is_manual_temp_set;     // 手动设置温度标志
extern float current_rpm;           // 当前转速值
extern bool is_manual_rpm_set;      // 手动设置转速标志
extern bool is_manual_fuel_set;     // 手动设置油量标志

// 初始动画函数
void start_animations(void);

// 警告灯初始化函数
void init_warning_lights(void);

// 重置所有警告灯状态
void reset_all_warnings(void);

// 各个警告灯控制函数
void set_coolant_temperature_warning(bool is_on);
void set_abs_warning(bool is_on);
void set_brake_warning(bool is_on);
void set_fuel_warning(bool is_on);
void set_door_warning(bool is_on);
void set_airbag_warning(bool is_on);
void set_seatbelt_warning(bool is_on);
void set_high_beam(bool is_on);
void set_low_beam(bool is_on);
void set_hazard_warning(bool is_on);

void set_speed_value(int speed);   // 设置速度值函数
void set_coolant_temp(float temp); // 设置冷却液温度的函数
void set_rpm_value(float rpm);     // 设置转速值函数
void set_fuel_value(float fuel);   // 设置油量值的函数

extern lv_obj_t *ui_time_label;  // SquareLine会自动生成这个声明
void update_time_display(void);   // 更新时间显示的函数
void save_fuel_on_exit(void);   // 退出时保存油量值的函数

#endif // UI_CUSTOM_H
